package com.lxk.mall.pms.domain.vo.spu;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import org.dromara.common.excel.convert.ExcelDictConvert;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 管理后台 - 商品 SPU Response VO
 */
@Data
@ExcelIgnoreUnannotated
public class ProductSpuRespVO {

    /**
     * 商品
     */
    @ExcelProperty("商品编号")
    private Long id;

    /**
     * 商品编码
     */
    @ExcelProperty("商品编码")
    private String spuCode;

    /**
     * 商户id
     */
    private Long merId;

    /**
     * 商品类型
     */
    private String productType;

    /**
     * 商品名称
     */
    @ExcelProperty("商品名称")
    private String name;

    /**
     * 关键字
     */
    @ExcelProperty("关键字")
    private String keyword;

    /**
     * 商品简介
     */
    @ExcelProperty("商品简介")
    private String introduction;

    /**
     * 商品详情
     */
    @ExcelProperty("商品详情")
    private String description;

    /**
     * 商品分类编号
     */
    @ExcelProperty("商品分类编号")
    private Long categoryId;

    /**
     * 商品品牌编号
     */
    @ExcelProperty("商品品牌编号")
    private Long brandId;

    /**
     * 商品封面图
     */
    @ExcelProperty("商品封面图")
    private String picUrl;

    /**
     * 商品轮播图
     */
    private String sliderPicUrls;

    /**
     * 排序字段
     */
    @ExcelProperty("排序字段")
    private Integer sort;

    /**
     * 商品状态
     */
    @ExcelProperty(value = "商品状态", converter = ExcelDictConvert.class)
//    @DictFormat(DictTypeConstants.PRODUCT_SPU_STATUS)
    private Integer status;

    /**
     * 商品创建时间
     */
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    // ========== SKU 相关字段 =========

    /**
     * 规格类型
     */
    @ExcelProperty("规格类型")
    private Integer specType;

    /**
     * 商品价格
     */
    @ExcelProperty(value = "商品价格")
    private BigDecimal price;

    /**
     * 市场价
     */
    @ExcelProperty(value = "市场价")
    private BigDecimal marketPrice;

    /**
     * 成本价
     */
    @ExcelProperty(value = "成本价")
    private BigDecimal costPrice;

    /**
     * 商品库存
     */
    @ExcelProperty("库存")
    private Integer stock;

    /**
     * SKU
     */
    private List<ProductSkuRespVO> skus;

    // ========== 物流相关字段 =========

    /**
     * 配送方式数组
     */
    private List<Integer> deliveryTypes;

    /**
     * 物流配置模板编号
     */
    @ExcelProperty("物流配置模板编号")
    private Long deliveryTemplateId;

    // ========== 营销相关字段 =========

    /**
     * 赠送积分
     */
    @ExcelProperty("赠送积分")
    private Integer giveIntegral;

    /**
     * 分销类型
     */
    @ExcelProperty("分销类型")
    private Integer subCommissionType;

    // ========== 统计相关字段 =========

    /**
     * 商品销量
     */
    @ExcelProperty("商品销量")
    private Integer salesCount;

    /**
     * 虚拟销量
     */
    @ExcelProperty("虚拟销量")
    private Integer virtualSalesCount;

    /**
     * 浏览量
     */
    @ExcelProperty("商品点击量")
    private Integer browseCount;

}
